package br.com.universidade.castelo.branco.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import br.com.universidade.castelo.branco.vo.Colaborador;

public class AutorizadorInterceptor extends HandlerInterceptorAdapter {
	
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object controller) throws Exception {
		
		String uri = request.getRequestURI();
		
		Colaborador validaColaboradorAdicionado = (Colaborador) request.getSession().getAttribute("colaboradorLogado");
		
		if(validaColaboradorAdicionado != null){
			if(validaColaboradorAdicionado.getPerfil().equals("Colaborador")){
				
				if(uri.endsWith("/pesquisasParaResponder") || 
						uri.endsWith("/exibePesquisaResponder") ||
						uri.endsWith("/respostaPesquisa") ||
						uri.endsWith("/funcionalidade") ||
						uri.endsWith("/logout") ||
						uri.endsWith("/menu") ||
						uri.endsWith("/login") || 
						uri.endsWith("/validaLogin") || 
						uri.endsWith("/resources") || 
						uri.endsWith(".js") ||
						uri.endsWith(".css") || 
						uri.endsWith(".jpg") || 
						uri.endsWith(".png") || 
						uri.endsWith(".gif")){
					return true;
				} else {
					response.sendRedirect("/pds-web/funcionalidade");
					return false;
				}
				
			}
			
		}
		
		if(uri.endsWith("/login") || uri.endsWith("/validaLogin") || uri.endsWith("/resources") || uri.endsWith(".css") || uri.endsWith(".jpg") || uri.endsWith(".png") || uri.endsWith(".gif")){
			return true;
		}
		
		if(request.getSession().getAttribute("colaboradorLogado") != null){
			return true;
		}
		
		response.sendRedirect("/pds-web/login");
		return false;

			
	}

}
